\section{Modelo de Casos de Uso}
% En esta sección,  dividimos el diagrama en varias partes para facilitar su lectura. Además, después de los gráficos explicaremos mejor los objetivos blandos y los o-refinamientos.

\subsection{Gráfico}

%\begin{landscape}

\begin{figure}[H]
  \centering
    \includegraphics[width=1\textwidth]{./casosdeuso/casosdeuso.pdf}
  \caption{Gráfico del Diagrama de Casos de Uso}
\end{figure}

%\end{landscape}

\subsection{Operaciones}

\begin{itemize}

\item \textbf{Enviando Datos:} (CU 1)

\textit{Actores:} Aplicación

\textit{Descripción:} La aplicación envía los datos recibidos al sistema.

\textit{Pre:} 

\textit{Post:} El sistema recibe los datos.
	
\begin{table}[H]
    \begin{tabular}{|p{13cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. La aplicación envía los datos al sistema.               & ~                                                       \\ \hline    
    2. El sistema recibe los datos.               & ~                                                       \\ \hline
    3. El sistema chequea si es un pedido o una cancelación.               & ~                                                       \\ \hline    
    4. Si es un pedido, se procesa el pedido. Usa caso de uso \textit{Haciendo Pedido}                & ~                                                       \\ \hline
	5. Si es una cancelación, se procesa la cancelación. Usa caso de uso \textit{Cancelando Pedido}                & ~ \\ \hline    
	6. \textbf{Fin CU}.               & ~                                                       \\ \hline        
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item \textbf{Haciendo Pedido:} (CU 2)

\textit{Actores:} Aplicación

\textit{Descripción:} Se procesa el pedido registrando el armado, la entrega, se verifica si hay que aplicar un premio, etc.

\textit{Pre:} El sistema recibe datos para un pedido.

\textit{Post:} El sistema procesa el pedido y confirma la aceptación del mismo a la aplicación.
	
\begin{table}[H]
    \begin{tabular}{|p{8cm}|p{10cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. Se registra el stock necesario para satisfacer el pedido.               & ~                                                       \\ \hline           
    2. El sistema envía los datos al Sistema de Usuario. Incluye caso de uso \textit{Actualizando Datos Usuario}               & ~                                                       
\\ \hline  
    3. Se aplica premio si corresponde.               & ~                                                       \\ \hline        
    4. Se registra pedido con armado pendiente.               & ~                                                       \\ \hline        
    5. Se registra la entrega como pendiente.               & ~                                                       \\ \hline        
    6. Se le comunica a la aplicación que la operación se realizó con éxito.               & Si se produjo algún error, se le comunica a la aplicación que la operación no se pudo realizar.                                                       \\ \hline            	
    7. \textbf{Fin CU}.               & \textbf{Fin CU}.                                                       \\ \hline        
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Actualizando Datos Usuario:} (CU 3)

\textit{Actores:} Sistema de Usuario

\textit{Descripción:} Se actualizan los datos del usuario según el pedido que se realiza.

\textit{Pre:} Se recibió un pedido.

\textit{Post:} El sistema de usuario registra al propietario del pedido y comunica al sistema si debe asignarle un premio.
	
\begin{table}[H]
    \begin{tabular}{|p{14cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema de usuario recibe los datos del sistema.               & ~                                                       \\ \hline    
    2. El sistema de usuario verifica si el propietario de los datos está registrado.               & ~                                                       \\ \hline
    3. Si no estaba registrado lo registra con 0 puntos.               & ~                                                       \\ \hline    
    4. Acumula en su puntaje los correspondientes al pedido realizado.                & ~                                                       \\ \hline
	5. Verifica si el usuario aumentó la franja de puntos para merecer premio.                 & ~ \\ \hline    
	6. Si pasa la franja, se reinician los puntos y se comunica al sistema que le asigne un premio al usuario en cuestión.                 & ~ \\ \hline    
	7. \textbf{Fin CU}.               & ~                                                       \\ \hline        
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Cancelando Pedido:} (CU 4)

\textit{Actores:} Aplicación

\textit{Descripción:} Se procesa la cancelación de un pedido.

\textit{Pre:} El sistema recibe datos para una cancelación.

\textit{Post:} El sistema verifica si puede cancelar el pedido y actúa en consecuencia.
	
\begin{table}[H]
    \begin{tabular}{|p{8cm}|p{10cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
	1. Se verifica si falta más de un día para entregar el pedido. & Si no es así, se comunica a la aplicación que no se puede realizar la operación. \textbf{Fin CU} ~                                                       \\ \hline
	2. El sistema envía los datos al Sistema de Usuario. Usa caso de uso \textit{Restableciendo Datos Usuario}               & ~                                                       \\ \hline           
    3. Si el usuario estaba registrado se saca del registro el stock necesario para satisfacer el pedido.                & Si el usuario no estaba registrado, el sistema se lo comunica a la aplicación. \textbf{Fin CU}             
\\ \hline                
    4. Se elimina el registro de pedido con armado pendiente.               & ~                                                       
\\ \hline  
    5. Se elimina el registro de entrega pendiente y el sistema comunica a la aplicación que la operación fue realizada con éxito. & ~                                                      
\\ \hline
    6. \textbf{Fin CU}.               & ~                                                      
\\ \hline        
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Restableciendo Datos Usuario:} (CU 5)

\textit{Actores:} Sistema de Usuario

\textit{Descripción:} El Sistema de Usuario actualiza los datos del usuario según como los tenía antes de realizar el pedido a cancelar.

\textit{Pre:} Hay una cancelación en progreso.

\textit{Post:} Se restablecen los datos del usuario.
	
\begin{table}[H]
    \begin{tabular}{|p{8cm}|p{10cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema de usuario recibe los datos del sistema.               & ~                                                       \\ \hline    
    2. El sistema de usuario verifica si el propietario de los datos está registrado.               & ~                                                       \\ \hline
    3. Si está registrado, le restablece los puntos a los que tenía antes de hacer el pedido.                & Si no está registrado, le comunica esto al sistema.\textbf{Fin CU}  \\ \hline    
	4. \textbf{Fin CU}.               & ~                                                       \\ \hline        
    \end{tabular}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Actualizando Precios:} (CU 6)

\textit{Actores:} Empleado

\textit{Descripción:} El empleado ordena actualizar los precios productos.

\textit{Pre:} 

\textit{Post:} Se actualizan los precios de ciertos productos.

\begin{table}[H]
    \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El empleado informa el cambio de precio de ciertos productos.  & ~                 \\ \hline
    2. El sistema actualiza los precios de los productos pedidos.  & ~                 \\ \hline
    3. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Alquilando Moto:} (CU 7)

\textit{Actores:} Empleado

\textit{Descripción:} Un empleado alquila una moto.

\textit{Pre:} El sistema no tiene motos disponibles.

\textit{Post:} Se alquila una moto.

\begin{table}[H]
    \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema ordena a un empleado que alquile una moto.  & ~                 \\ \hline
    2. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Entregando Pedido:} (CU 8)

\textit{Actores:} Moto

\textit{Descripción:} El sistema le entrega a una moto la dirección de una próxima entrega.

\textit{Pre:} El sistema tiene al menos una entrega pendiente.

\textit{Post:} La moto tiene la ruta que debe realizar.

\begin{table}[H]
    \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema obtiene una entrega pendiente. & ~                 \\ \hline
    2. Se calcula la ruta que debe realizar.  & ~                 \\ \hline
    3. El sistema chequea si tiene motos disponibles.  & ~                 \\ \hline
    4. Si no hay, se alquila una moto. Usa caso de uso \textit{Alquilando Moto}.  & ~                 \\ \hline
    5. Se asigna la entrega a una moto.  & ~                 \\ \hline
    6. Si era moto del local, se la remueve de las disponibles.  & ~                 \\ \hline
    7. Se le entrega la ruta.  & ~                 \\ \hline
    8. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Armando Pedido:} (CU 9)

\textit{Actores:} Empleado

\textit{Descripción:} El sistema avisa al empleado que debe armar un nuevo pedido.

\textit{Pre:} El sistema tiene al menos un pedido registrado todavía sin notificar.

\textit{Post:} El empleado recibe la notificación.

\begin{table}[H]
   \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema obtiene un pedido pendiente de armado. & ~                 \\ \hline
    2. El sistema notifica al empleado que debe armar un nuevo pedido. & ~                 \\ \hline
    3. El sistema elimina el registro de ese pedido como pendiente.  & ~                 \\ \hline
    4. Se envía el pedido. Incluye caso de uso \textit{Entregando Pedido}.& ~                 \\ \hline
    5. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Informando Pedido Entregado:} (CU 10)

\textit{Actores:} Moto

\textit{Descripción:} Luego de haber realizado la entrega, la moto reporta que entregó el pedido.

\textit{Pre:} 

\textit{Post:} La moto reporta que entregó el pedido.

\begin{table}[H]
    \begin{tabular}{|p{8cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. Una moto reporta que entregó el pedido.  & ~                 \\ \hline
    2. Si era moto del local, se asigna a la moto como disponible.  & ~                 \\ \hline
    3. Si no era moto del local, se le paga lo debido por el envío.  & ~                 \\ \hline
    4. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Haciendo Lista de Compras:} (CU 11)

\textit{Actores:} Empleado

\textit{Descripción:} Se arma la lista y se ordena al empleado que compre los productos de la misma.

\textit{Pre:} 

\textit{Post:} Se compran los productos necesarios para el día.

\begin{table}[H]
    \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El sistema calcula los productos necesarios para el día.  & ~                 \\ \hline
    2. Arma una lista con los productos.  & ~                 \\ \hline
    3. Entrega la lista al empleado para que compre los productos. & ~                 \\ \hline
    4. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\item \textbf{Notificando Arribo de Stock:} (CU 12)

\textit{Actores:} Empleado

\textit{Descripción:} El empleado notifica que llegaron los productos comprados.

\textit{Pre:} Se compraron productos.

\textit{Post:} Arribaron los productos comprados.

\begin{table}[H]
    \begin{tabular}{|p{11cm}|p{4cm}|}
    \hline
    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
    1. El empleado recibe los productos.  & ~                 \\ \hline
    2. El empleado notifica al sistema del arribo de los productos.  & ~                 \\ \hline
    3. \textbf{Fin CU}  & ~                 \\ \hline
    \end{tabular}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%
%
%
%
%
%
%
%
%\item \textbf{Enviando datos:}
%
%\textit{Actores:} App
%
%\textit{Descripción:} La aplicación web le pasa los datos del usuario y del pedido al sistema y éste lo registra en el sistema.
%
%\textit{Pre:} 
%
%\textit{Post:} Se le suman los puntos por la compra al usuario en el sistema de usuarios, se agrega el pedido a los pedidos del día de la entrega y se le suma la cantidad de ventas a los respectivos productos del pedido.
%
%\begin{table}[H]
%    \begin{tabular}{|p{8cm}|p{10cm}|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El cliente se conecta con la app.               & ~                                                       \\ \hline
%    2. El cliente indica sus datos de usuario y los pedidos que desea comprar. & \\ \hline
%    3. Se le informa al sistema de usuarios los datos del usuario y los puntos de la compra para que actualice la base de datos & \\ \hline
%    4. Se suman la cantidad de los productos pedidos a sus respectivos contadores de ventas y se agrega el pedido a los pedidos del día de la entrega &  \\ \hline
%    5. La app notifica que su pedido fue hecho satisfactoriamente.   &  \\ \hline
%    \end{tabular}
%\end{table}
%
%
%\item \textbf{Armando Pedido:}
%
%\textit{Actores:} Empleado
%
%\textit{Descripción:} El sistema avisa al empleado que debe armar un nuevo pedido.
%
%\textit{Pre:} El sistema tiene al menos un pedido registrado todavia sin notificar.
%
%\textit{Post:} El empleado recibe la notificacion.
%
%\begin{table}[H]
%    \begin{tabular}{|l|l|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El sistema notifica al empleado que debe armar un nuevo pedido. & ~                 \\ \hline
%    \end{tabular}
%\end{table}
%
%
%\item \textbf{Informando Envíos:}
%
%\textit{Actores:} Moto
%
%\textit{Descripción:} El sistema le entrega al motoquero la dirección de un próximo pedido.
%
%\textit{Pre:} El sistema calcula la ruta para realizar la entrega de un pedido.
%
%\textit{Post:} La Moto tiene la ruta que debe realizar.
%
%\begin{table}[H]
%    \begin{tabular}{|l|l|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El sistema notifica a la moto con una nueva ruta de entrega para realizar. & ~                 \\ \hline
%    \end{tabular}
%\end{table}
%
%\item \textbf{Cancelando Pedido:}
%
%\textit{Actores:} App y sistema de usuarios
%
%\textit{Descripción:} El cliente intenta cancelar un pedido anticipado y el sistema le confirma o rechaza la cancelación.
%
%\textit{Pre:} El cliente realizo un pedido que no ha sido entregado.
%
%\textit{Post:} Se borra del registro de ventas los productos del pedido, se borra el pedido de la lista de pedidos para ese día y se le descuentan los puntos en el sistema de registro previamente sumados
%
%\begin{table}[H]
%    \begin{tabular}{|p{8cm}|p{10cm}|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El cliente se conecta con la app.               & ~                                                       \\ \hline
%    2. El cliente indica que desea cancelar su pedido e ingresa sus datos y los del pedido. & 2.2 La app revisa los datos del pedido y si no es posible la cancelación, le notifica que su cancelación fue rechazada. FIN C.U.                                                    \\ \hline
%    3. Se le informa al sistema de usuarios los datos del usuario y los puntos de la compra para que actualice la base de datos restándole los puntos previamente sumados& \\ \hline
%    4. Se vuelve a cambiar lo que se cambió al momento de hacer la compra (productos vendidos, pedidos del día y puntos del usuario).    &  \\ \hline
%    5. La app notifica que su pedido fue cancelado satisfactoriamente.    &  \\ \hline
%    \end{tabular}
%\end{table}
%
%
%\item \textbf{Ordenando comprar Stock:}
%
%\textit{Actores:} Empleado
%
%\textit{Descripción:} El sistema informa al empleado la lista de compras necesarias.
%
%\textit{Pre:} Es de mañana en una hora X antes de que se llame al proveedor para pedir los productos para el día
%\textit{Post:} 
%
%\begin{table}[H]
%    \begin{tabular}{|l|l|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El sistema le notifica al empleado la lista de productos necesarios a comprar.               & ~                                                       \\ \hline
%    \end{tabular}
%\end{table}
%
%
%
%\item \textbf{Notificando arribo de stock:}
%
%\textit{Actores:} Empleado (Stock)
%
%\textit{Descripción:} El empleado (de Stock) informa al sistema que llegó el reabastecimiento pedido.
%
%\textit{Pre:} El empleado recibe las compras realizadas.
%\textit{Post:} El sistema tiene el stock actualizado.
%
%\begin{table}[H]
%    \begin{tabular}{|l|l|}
%    \hline
%    \textbf{Curso Normal}                                                    & \textbf{Curso Alternativo} \\ \hline
%    1. El empleado ingresa en el sistema los valores correspondientes a los productos recibidos para el stock. & ~                                                       \\ \hline
%    \end{tabular}
%\end{table}

\end{itemize}


\input{requerimientos.tex}
